package org.crystal.tradecraft.model.binance.market;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import lombok.Data;
import org.crystal.tradecraft.model.binance.market.filter.BinanceFilter;
import org.crystal.tradecraft.serialization.BinanceFiltersDeserializer;

import java.time.Instant;
import java.util.List;
import java.util.Optional;
import java.util.TimeZone;

@Data
public class ExchangeInfo {
    
    private TimeZone timezone;

    private Instant serverTime;

    private List<RateLimit> rateLimits;

    private Optional<Symbol> symbol;

    private Optional<List<Symbol>> symbols;

    @JsonDeserialize(using = BinanceFiltersDeserializer.class)
    private List<? extends BinanceFilter> exchangeFilters;

    private List<SupportedSor> sors;
}
